{
"cells": [
{
"cell_type": "markdown",
"id": "e3d26383-9387-46d0-991b-5577287ec963",
"metadata": {},
"source": [
"# Orientation mapping for Molecular Glasses\n",
"\n",
"This notebook looks into doing orientation mapping for polymers using hyperspy and pyxem. This is a similar work flow for producing figures similar to those in the paper:\n",
"```\n",
"Using 4D STEM to Probe Mesoscale Order in Molecular Glass Films Prepared by Physical Vapor Deposition\n",
"Debaditya Chatterjee, Shuoyuan Huang, Kaichen Gu, Jianzhu Ju, Junguang Yu, Harald Bock, Lian Yu, M. D. Ediger, and Paul M. Voyles\n",
"Nano Letters 2023 23 (5), 2009-2015\n",
"DOI: 10.1021/acs.nanolett.3c00197\n",
"```\n",
"\n",
"In this paper disk like structures in the glass are oriented in domains in the molecular glass. These domains result from Pi-Pi like stacking and the orientation of the structure can be measured by 4-D STEM. \n",
"\n",
"Here we will go through the processing in pyxem/ hyperspy to create a figure similar to the image below which comes from the above paper.\n",
"\n",
"
\n",
"\n",
"This is also a good example of how to develop custom workflows in pyxem. This might eventaully be added as a supported feature to pyxem/hyperspy using the `Model` class upstream in hyperspy but this requires that parallel processing in `hyperspy` when fitting signals is improved. \n",
"\n",
"There are a couple of really cool things to focus on. Specifically this make heavy use of the `map` function in order to make these workflows both parallel and operate out of memory. This notebook is also designed to be easy to modify in the case that you have a different function that you want to fit!\n",
"\n",
"The raw data used in section1 can be found at the link below:\n",
"\n",
"https://app.globus.org/file-manager?origin_id=82f1b5c6-6e9b-11e5-ba47-22000b92c6ec&origin_path=%2Fmdf_open%2Fchatterjee_phenester_orientation_v1.3%2FFig2%2Fhttps://app.globus.org/file-manager?origin_id=82f1b5c6-6e9b-11e5-ba47-22000b92c6ec&origin_path=%2Fmdf_open%2Fchatterjee_phenester_orientation_v1.3%2FFig2%2F"
]
},
{
"cell_type": "markdown",
"id": "6ea0ee14-e038-4f86-b282-8c3007a7f7a2",
"metadata": {},
"source": [
"# Contents\n",
"\n",
"0. [Loading the Data/Setup](#Section0)\n",
"1. [Removing Ellipticity and Polar Unwrapping](#Section1)\n",
"2. [Processing the Polar Spectrum](#Section2)\n",
" 1. [Smoothing Functions](#Section2a)\n",
"3. [Fitting The Polar Spectrum](#Section3)\n",
" 1. [Fitting Functions](#Section3a)\n",
" 2. [Testing Initial Parameters](#Section3b)\n",
" 3. [Visualizing the Results and Checking](#Section3c)\n",
"4. [Making a Figure with Flow Lines](#Section4)"
]
},
{
"cell_type": "markdown",
"id": "8720d03b-50c9-4f54-b32b-4138ee72e198",
"metadata": {},
"source": [
"\n",
"# 0. Loading the Data/ Setup"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "208f231f-db10-45de-8381-a687a28dbe8d",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import hyperspy.api as hs # importing hyperspy "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9ef0bd65-ad3e-42bd-9483-e08b96495f7a",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import zarr"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "865ce2a3-1819-41ea-9d51-5ac7f32bc92c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:hyperspy.io:`signal_type='Signal2D'` not understood. See `hs.print_known_signal_types()` for a list of installed signal types or https://github.com/hyperspy/hyperspy-extensions-list for the list of all hyperspy extensions providing signals.\n"
]
}
],
"source": [
"store2 = zarr.ZipStore(path=\"data/12/data_processed.zspy\")\n",
"s = hs.load(store2, lazy=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "18b6e458-05ef-4e9c-b370-d7479951eb3c",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"mean_dp = s.mean()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "37de78c2-8d76-457e-a3b3-b2b5ea85ae07",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[########################################] | 100% Completed | 425.61 ms\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:hyperspy.io:`signal_type='Signal2D'` not understood. See `hs.print_known_signal_types()` for a list of installed signal types or https://github.com/hyperspy/hyperspy-extensions-list for the list of all hyperspy extensions providing signals.\n"
]
}
],
"source": [
"mean_dp.compute()# Compute the mean Diffraciton pattern"
]
},
{
"cell_type": "markdown",
"id": "d09bf27a-7d19-40ce-a878-77aca96d0102",
"metadata": {
"tags": []
},
"source": [
"\n",
"# 1.0 Removing Ellipticity and Polar Unwrapping\n",
"\n",
"Often times you will have some ellipticity in a diffraction pattern or you might not know the exact center. \n",
"\n",
"In pyxem we have a method `determine_ellipse` which can be used to find some ellipse. This is useful for patterns where you don't have a zero beam to find the beam shift. It is a pretty simple function, it just finds the max points in the diffraction pattern and uses those to define an ellipse. "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c8f9812d-80db-443d-8681-f3114cd8a296",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING:silx.opencl.common:Unable to import pyOpenCl. Please install it from: https://pypi.org/project/pyopencl\n"
]
}
],
"source": [
"from pyxem.utils.ransac_ellipse_tools import determine_ellipse, _get_max_positions"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d519d349-8af0-49c5-82c4-25b0cad5cfd3",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAI7CAYAAAD8n9/DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABWmklEQVR4nO3deZQU1fn/8c+wDssMiLJDXFCUERBcwQ13cFdcEVyJHtGgKGo0ft3XaES+apRoiBtGIG4YFSUqEEVi4oKKEEBExUH0xyIjiyxD//7wMN/uYuZW375V3VXV79c5cw41VV11q7q6ufPcp55bkkqlUgIAAECt6hW6AQAAAFFGZwkAAMCAzhIAAIABnSUAAAADOksAAAAGdJYAAAAM6CwBAAAYNCh0AwAAQLz9/PPP2rBhQ96O16hRI5WWlubteHSWAABAzn7++WftuOOOWrp0ad6O2a5dOy1atChvHSY6SwAAIGcbNmzQ0qVLtXjxYpWXl4d+vKqqKnXu3FkbNmygswQAAOKjrKxMZWVloR+nELO0keANAABgQGQJAAA4S6VSeYn6EFkCAACIGDpLAAAABgzDAQAAZwzDAQAAFCkiSwAAwBmRJQAAgCJFZAkAADgjsgQAAFCkiCwBAABnRJYAAACKFJElAADgjMgSgNhYvHixLrnkEnXt2lVNmjRRq1at1KNHD1144YVavHhxzXY333yzSkpKCtjSTFFrDwBsQWQJSJBvv/1We+65p1q2bKmRI0dq11131apVqzRnzhxNnDhRX375pTp37ixJ+vWvf60BAwYUuMUAkiLJkSU6S0CCPPbYY1q2bJn+/e9/a8cdd6z5/UknnaTf/e532rx5c83vOnXqpE6dOhWimQAQKwzDAQmyfPly1atXT23atKl1fb16//eRr23Ya/369Ro5cqTatWunpk2b6uCDD9aHH36oHXbYQeedd17Ndk888YRKSko0depUDRs2TNttt5223XZbDRw4UEuWLMnY54QJE3TUUUepffv2atKkibp166Zrr71Wa9asCe7EARTclshSPn7yjc4SkCB9+/bV5s2bNXDgQL3xxhuqqqqyev3555+v0aNH6/zzz9ekSZN0yimn6OSTT9aPP/5Y6/a//vWv1bBhQ/31r3/VPffco2nTpmnIkCEZ2yxYsEDHHHOMxo4dq9dff10jRozQxIkTdfzxx+d6mgCQVwzDAQly1lln6Z133tFjjz2mKVOmqKSkRLvttpsGDBigyy67TDvssEOdr50zZ46effZZ/fa3v9Vdd90lSTryyCPVtm1bDRo0qNbXDBgwQA888EDN8ooVK3TNNddo6dKlateunSTpf/7nf2rWp1IpHXDAAerWrZv69eunTz/9VD179gzgzAEUWpJzlogsAQlSUlKiMWPG6Msvv9TDDz+s888/Xxs3btT999+v3XffXdOnT6/ztVvWnX766Rm/P/XUU9WgQe1/V51wwgkZy1s6Pl9//XXN77788kudddZZateunerXr6+GDRuqX79+kqS5c+fanyQA5BmRJSCBtt9+ew0bNqxmeeLEiRo0aJCuvvpq/fvf/671NcuXL5cktW3bNuP3DRo00Lbbblvra7y/b9y4sSRp3bp1kqTVq1froIMOUmlpqW6//XZ17dpVTZs21eLFizVw4MCa7QAgyugsAUXg9NNP11133aXZs2fXuc2Wjs/333+vjh071vx+06ZNNR0pW2+//baWLFmiadOm1USTJNWZAwUgvhiGAxAL3333Xa2/X716tRYvXqwOHTrU+dqDDz5Y0i9Pr6V77rnntGnTppzas+Vpuy0Rpy3+9Kc/5bQ/ACgEIktAgtxxxx2aMWOGzjjjDPXq1UtNmjTRokWL9NBDD2n58uW6995763zt7rvvrkGDBum+++5T/fr1ddhhh+nzzz/XfffdpxYtWmSUHcjW/vvvr2222UYXX3yxbrrpJjVs2FDPPPOMPvnkE5fTBBBBSY4s0VkCEuTss8+WJI0fP1733nuvVq1apVatWmmvvfbSa6+9pqOPPtr4+scff1zt27fX2LFjdf/996tXr16aOHGiBgwYoJYtW1q3Z9ttt9Wrr76qkSNHasiQIWrWrJlOPPFETZgwQXvuuWcupwgAeVeSKkQXDUBsvPfeezrggAP0zDPP6Kyzzip0cwBETFVVlVq0aKFvv/1W5eXleTlep06dtGrVqrwcTyKyBCDNP/7xD82cOVN77bWXmjRpok8++UR33323dtllFw0cOLDQzQOAgqCzBKBGeXm5pkyZotGjR+unn37Sdtttp6OPPlp33XWXSktLC908ABFGzhKAorDffvvp3XffLXQzACBS6CwBAABnSY4sUWcJAADAgMgSAABwluTIUkE6S5s3b9aSJUtUVlZWU+EXAAC4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qP32208NGzbUsmXLNGrUKA0bNiynhphOPl85KIx9186mxpTftrnWdPHmyHjlOmebH1P7/e4XU60kvxpNde2ntn2lL3vnaPNKzw/y5jetWrUqY7l58+Y1//bO2eblzX9at25dzb+9NYy8eUjpbU7Pk/LuR5LWrFlT5369y6b6SH41gUzvh02NL78aTen8XmvKDQwy38nUBpf2m9bZvNalThqQK+thuI8++kgHHXSQJOm5555T27Zt9fXXX+upp57SAw88EHgDAQAACsk6srR27dqauVimTJmigQMHql69eurTp89W1XcBAEBxYBguzc4776yXXnpJJ598st544w1dccUVkn6ZOsFvjpa4iWK5gLiVM8j18X8vb/jfNIzlXed3nfwe986WaboKmyEWKXNoxzQVipf33L3DcqZpPLz7TR8S8z7S37BhQ+NrTdfUVA7AOzRomoLFu85vGC69jd72mt6PsKbxsN1PUNMZmYbWbIbdguRyTdPv+Xy1F8XHehjuxhtv1FVXXaUddthB++23n/r27SvplyhT7969A28gAACIvi2RpXz85Jt1ZOnUU0/VgQceqO+++0577LFHze8PP/xwq3lWAAAA4iCnopTt2rXbauZw76y+AACgeBR9ztLAgQP1xBNPqLy8XAMHDjRu+8ILLwTSMNQuinlKNo8025QOSM9FcJmuxZvHY8otcuGSU2L68PvlYaSfnzfnx3SNvdt6H9M3TYfizaOyyTfzLqfnGnnzjkx5Sd513mVTrpFfeQmbx95N979NHpvfcUxTstjcw6Y22ub85DrdSZCP/+c63RJgI6vOUosWLWpuwhYtWoTaIAAAED9FH1l6/PHHa/03AABA0lk/Dff555/Xue711193agwAAIgnnoZLs/fee+uee+7R8OHDa363fv16jRw5UmPHjt0q7yEINjVEwjpumMe0GXMvRM5SkMc05TiYcltM+RpSZhv9phIxXVO/D6FNLoupzTZ5SN5cHG++kOmY3tyc9H15p5Ax5QD5XVPTdC5+uUTp601T3ni39XtfTXWWbPLa/O4Jm/vHhk1ulOm1NjW+bK9proK8Ti75jEC2rDtLzzzzjC666CK99tprevzxx7V06VKdddZZkqQZM2YE3kAAABB9Sc5Zsh6GGzhwoD799FNt2rRJ3bt3V9++fXXIIYfoww8/1J577hlGGwEAAAom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t2HDBp100kk66aSTVF1dndWxAACIixtvvFHvvvuu7rnnnpz3wdNwWdhuu+3UoEEDff/99xm///7779WuXTvja7t3766ZM2eqtLRUq1ev1sknn6y5c+fWuf2wYcN055136sQTT9S0adOybuPQoUM1btw4Sb9EgJo3b67DDz9cb731Vq3bBznmm+u+bOosedeZjmmbS5FrTRrAhUtdMZvXBlnPjHxBREllZaWqqqpqlsvLy7POwbVFZMlCbV8yfl8e8+bNU69evdSnTx898sgjevLJJ9WtW7datz3llFM0evRoHXXUUVYdpa5du2rffffV+PHjJUnV1dWaMGGCLrjggqz3ke6ss87STz/9VPPjl8gOAEC+h+EqKirUuXPnmp8TTjghtHMjspSFZcuWadOmTVtFkdq0abNVtMlr48aNWrhwoSTpww8/1D777KPLL79cF1988Vbbzpo1S3vuuafOP/98/ec//8m6fUOHDlXDhg1VWVlZ87uSkhJt3LhRLVu21I8//pj1viTp5Zdf1vvvv1+znL5fAACiYM6cOSorK6tZDiuqJNFZysrGjRv14Ycf6sgjj9RLL71U8/sjjzxSkyZNstpXSUlJnU+eLVy4UCNHjtS0adNUXV2t4cOH++6vfv36Ouecc3TllVdulVP1/PPPa/DgwfrjH/9o1cbVq1dr9erVVq+pS1DTJ7gMJfhty9AbCsH2nrb57JiGsL0YWkNQ8l2UsmPHjqF2kNLRWcrSqFGj9PTTT+uDDz7QzJkzddFFF+lXv/pVzZNll156qU4++WQdccQRNa+54447NHnyZC1evFhlZWU688wzdcghhxhrLS1YsECHHnqopk2bpk2bNumKK64wtuu4447TNttso7Fjx2aM3UrSc889p6FDh1p3lurSrFkz7bzzzjXLO+64o/bYYw+tWLFCixcvDuQYAABEDZ2lLE2cOFHbbrutbrzxRrVv316zZ8/WMccco2+++UbSL0ngXbp0yXhN27Zt9fTTT6t9+/ZatWqVPv30Uw0YMEBvvvmm8Vjz58/XYYcdVhNhuuqqq+rcdujQoXrzzTe36ihJv0SWrr/+evXu3Vsff/xxDmedae+9987IpdpScfyJJ57Y6uk7AEBxiep0J0uXLtX06dNrlufOnasJEyboV7/6lfr27ZvVPkpSBYjBVlVVqUWLFvk+LAogqKEEryCH4YAocBmGs7n/URxWrVqVtyGqLf+nd+zYUfXqhf/c2ObNm1VZWZn1OY4ePbrWUZouXbroiy++yOqYdJZQdEz/CdGRQlSFlbOEZCpEZ6lDhw556ywtWbIkr+eYuGG4//znP761j+Kkfv36atu2bZ3rv//++0QWk1y6dKn22WefQjcDAIDkdZbatWunTp06FboZedO+fftCNwEAgMjmLAUhcZ2lpUuXFroJCADvIwAgKhLXWWLopji4JI7bTKtik99EInm0hZWblq9cImonIeqSHFliuhMAAACDxEWWAABA/hFZAgAAKFJElhBLLsUtXfKbTOvCym8KMhcqXzWlgjpOroUYbbd3eT9skEuEJCOyBAAAUKToLAEAABgwDIdYshlay9dj1i4lCUz7CnJ+PZvHz4MaprM5TlAlIPzWuwxturwfLoK6J4CwMAwHAABQpIgsAQAAZ0SWAAAAihSRJcRSHHI0gipR4BVUKQSbvCkXfu0N670MKq8tivlBUWgD4EVkCQAAoEgRWQIAAM6ILAEAABQpIktABOVae8jLpf6USxtyrefksm1Yf23m66/YKOZGATaILAEAABQpIksAACAQSY2I0lkCCiBfU7DEgc00Hkm+Lkk+NyDu6CwBAABnhZgnMV/IWQIAADAoSGSJcDMAAOEpxP+zRJYC9tNPPxXisAAsbHkMOJcvplxfm/46/qgCcsf/s8EqSGSpQ4cOWrx4scrKynznpwIAANlJpVL66aef1KFDh0I3JVEK0lmqV6+eOnXqVIhDAwCQaC1atCjIcRmGAwAAKFKUDgAAAM6ILAEAABQpOktAAA455BCNGDGi0M3I8NVXX6mkpESzZs3KeR/Lly9XmzZt9NVXX0mSpk2bppKSEv3444+BtNHPzJkz1axZM7Vp00bz588PbL+fffaZOnXqpDVr1gS2T6DYeZ9mDfMn3+gsAQnVuXNnfffdd+revXvO+7jrrrt0/PHHa4cddgiuYZIuuugi1a9fX+PHj69zm9mzZ+vYY4/VBRdcoIMOOkhHHnmkvv3226z2f8cdd2j//fdX06ZN1bJly63W9+jRQ/vuu6/uv//+XE8BQBGhswQkVP369dWuXTs1aJBbauK6des0duxY/frXvw60XWvXrtWECRN09dVXa+zYsbVu89VXX6l///66+OKL9eCDD2rixIk6+OCDddRRR2n58uW+x9iwYYNOO+00DRs2rM5tzj//fD3yyCOqrq7O+VwA/B8iSwCsvP7662rRooWeeuop/fzzz9p999110UUX1axftGiRWrRooccee6zOfYwaNUo9evRQs2bN1LlzZ11yySVavXp1zfoLLrhAPXv21Pr16yVJGzdu1F577aXBgwdL2noYbuXKlRo8eLBat26tJk2aaJdddtHjjz9e5/EnT56sBg0aqG/fvnVus27dOh177LHq06ePVqxYkdW1+dvf/qaKigpdd911mjFjRs0Q3xY//PCDjjrqKF1yySW68847Jf3S8XvyySd18MEH65hjjsm4DrW55ZZbdMUVV6hHjx51btO/f38tX75c06dPz6rdAIoXnSUgYOPHj9fpp5+up556Suecc45KS0v1zDPP6Mknn9RLL72k6upqnX322Tr00EN14YUX1rmfevXq6YEHHtDs2bP15JNP6u2339Y111xTs/6BBx7QmjVrdO2110qSbrjhBi1btkwPP/xwrfu74YYbNGfOHE2ePFlz587VI488ou22267O4//zn//U3nvvXef6VatW6aijjtKGDRv01ltvqVWrVn6XRpI0duxYDRkyRC1atNAxxxyzVYdtS37S9ddfn/H7evXqacyYMXr//ffVvHnzrI5l0qhRI+2xxx565513nPcFINmRJUoHAAF6+OGH9bvf/U6TJk3SoYceWvP7Xr166fbbb9eFF16oQYMGaeHChXrppZeM+0pPGN9xxx112223adiwYTWdoebNm2vcuHHq16+fysrKdN999+mtt96qsyDdN998o969e9d0gPzykL766qs6qwB///33OuOMM9SlSxc9++yzatSokXFfWyxYsED/+te/9MILL0iShgwZossuu0w33XST6tXL/99uHTt23CqyBQBeRJaAgDz//PMaMWKEpkyZktFR2mLkyJHadddd9eCDD+rxxx83RnUkaerUqTryyCPVsWNHlZWV6ZxzztHy5csznuDq27evrrrqKt12220aOXKkDj744Dr3N2zYMI0fP169evXSNddco/fee894/HXr1qm0tLTWdUcccYR22mknTZw4MeuOkvRLVKl///41537MMcdozZo1evPNN7PeR7qLL75YzZs3r/mx1aRJE61duzanYwPIlOTIEp0lICC9evVS69at9fjjj9f6Yf7hhx80b9481a9fXwsWLDDu6+uvv9Yxxxyj7t276/nnn9eHH36oP/7xj5J+yU3aYvPmzZoxY0ZW+zz66KP19ddfa8SIEVqyZIkOP/xwXXXVVXVuv91222nlypW1rjv22GP1zjvvaM6cOcZjpquurtZTTz2lV199VQ0aNFCDBg3UtGlTrVixos5Ebz+33nqrZs2aVfNja8WKFWrdunVOxwZQPOgsAQHp0qWLpk6dqkmTJmn48OFbrb/gggvUvXt3PfXUU7rmmmuMHY0PPvhAmzZt0n333ac+ffqoa9euWrJkyVbb3XvvvZo7d66mT5+uN954w5iwLUmtW7fWeeedp3Hjxmn06NF69NFH69y2d+/edbbx7rvv1rnnnqvDDz886w7Ta6+9pp9++kkff/xxRgfnb3/7m1566aWsnnLzatOmjXbeeeeaH1uzZ89W7969rV8HYGtJjiyRswQEqGvXrpo6daoOOeQQNWjQQKNHj5Yk/fGPf9TMmTP16aefqnPnzpo8ebIGDx6s999/v9ZhrC5dumjTpk168MEHdfzxx2vGjBkaM2ZMxjazZs3SjTfeqOeee04HHHCA/vd//1eXX365+vXrp5122mmrfd54443aa6+9tPvuu2v9+vV65ZVX1K1btzrPpX///rruuuu0cuVKbbPNNlut/8Mf/qDq6moddthhmjZtmnbbbTfjtRk7dqyOPfZY7bHHHhm/33333TVixAiNGzdOl19+uXEf2frmm2+0YsUKffPNN6qurq6JOu288841w3VfffWVKisrdcQRRwRyTAAJlgLgrF+/fqnLL7+8ZnnOnDmpNm3apK688srU3LlzU02aNEn99a9/rVm/atWq1A477JC65ppr6tznqFGjUu3bt081adIk1b9//9RTTz2VkpRauXJlat26damKiorURRddlPGak08+ObX//vunNm3alFq0aFFKUurjjz9OpVKp1G233Zbq1q1bqkmTJqlWrVqlTjzxxNSXX35pPK8+ffqkxowZU7M8derUmjZsMXz48FT79u1T8+bNq3M/S5cuTTVo0CA1ceLEWtcPHz481aNHD2NbbJx77rkpSVv9TJ06tWabO++8M9W/f//AjgkUq1WrVqUkpRo3bpwqLS0N/adx48YpSalVq1bl7RxLUqkCxLMAxMJrr72mq666SrNnzy7I02phWb9+vXbZZRc9++yzOuCAAwrdHCDWqqqq1KJFCzVu3FglJSWhHy+VSmn9+vVatWqVysvLQz+exDAcAINjjjlGCxYsUGVlpTp37lzo5gTm66+/1vXXX09HCUBWiCwBCMSdd95ZU3Hb66CDDtLkyZPz3CIA+bAlstSoUaO8RZY2bNiQ18gSnSUAgVixYkWdU540adJEHTt2zHOLAORDMXSWGIYDEIhWrVplPeUJgOTJV+ylEDGe5GRsAgAAhIDIEgAAcEZkCQAAoEgRWQIAAM6ILAEAABQpIksAAMAZkSUAAIAiRWQJAAA4I7IEAABQpIgsAQAAZ0SWAAAAYurMM89Uw4YNVVJSoqZNm+qhhx6yej2dJQAAEIhUKhX6j63LL79cEyZM0FlnnaW///3v2nXXXTV8+HDNnDkz632UpAoRzwIAAIlQVVWlFi1a5P24q1atUnl5ue92zZs31/bbb6/PP/+85neNGzfWnnvumXWHiZwlAAAQO5WVlaqqqqpZLi8v36rztHr1aq1Zs0bHHXdcxu+7deumuXPnZn0shuEAAEDOGjVqpHbt2uX1mA0bNlRFRYU6d+5c83PCCSdstd38+fMlSTvttFPG79u0aaO1a9dmfTwiSwAAIGelpaVatGiRNmzYkLdj/vzzz1sdzzQkV1JSkrGcSqW2+p0JnSUAAOCktLRUpaWleTteNrlKktS1a1dJ0sKFCzN+///+3/9TkyZNsj4ew3AAACCRmjdvrmbNmunVV1/N+P3cuXPVrVu3rPdDZwkAACTW0KFD9fnnn+v888/XK6+8oj333FMbNmzQH/7wh6z3QekAAACQaGeeeaaee+45VVdXq0mTJvr973+v4cOHZ/16OksAAAAGDMMBAAAY0FkCAAAwoLMEAABgQGcJAADAgM4SAACAAZ0lAAAAAzpLAAAABnSWAAAADOgsAQAAGNBZAgAAMKCzBAAAYPD/AZFXthYos3sZAAAAAElFTkSuQmCC",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pss.plot()"
]
},
{
"cell_type": "markdown",
"id": "a89cf286-705e-443b-b4fd-826281926d7f",
"metadata": {},
"source": [
"\n",
"## 2a. Smoothing Functions\n",
"\n",
"These are just some custom functions for filtering when there is a zero beam. It just ignores the zero beam when guassian filtering so that \n",
"intensity doesn't bleed into the masked region"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "034f07bf-b25f-4ac6-bb2f-b1a84a4cedbe",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"#Helper Functions (can ignore for the most part)\n",
"from scipy.ndimage import gaussian_filter1d\n",
"import numpy as np\n",
"from pyxem.utils.signal import to_hyperspy_index\n",
" \n",
"def mask_gaussian1D(data,\n",
" sigma,\n",
" masked_region=None,\n",
" ):\n",
" \"\"\"Gaussian smooth the data with a masked region which is ignored.\n",
" \n",
" Parameters\n",
" ----------\n",
" data: array-like\n",
" A 1D array to be filtered\n",
" sigma: float\n",
" The sigma used to filter the data\n",
" masked_region: tuple or None\n",
" The region of the data to be ignored\n",
" \"\"\"\n",
" if masked_region is not None:\n",
" data_smooth = np.zeros(data.shape)\n",
" data_smooth[0:masked_region[0]] = gaussian_filter1d(data[0:masked_region[0]],sigma)\n",
" data_smooth[masked_region[1]:] = gaussian_filter1d(data[masked_region[1]:],sigma)\n",
" else:\n",
" data_smooth = gaussian_filter1d(data,sig)\n",
" return data_smooth\n",
"\n",
"def smooth_signal(signal, sigma, masked_region=None, **kwargs):\n",
" \"\"\"\n",
" Helper function to smooth a signal. The masked_region will use real units if the \n",
" values are floats and pixel units if an int is passed\n",
" \"\"\"\n",
" if masked_region is not None:\n",
" masked_region =[to_hyperspy_index(m, signal.axes_manager.signal_axes[0]) for m in masked_region]\n",
" return signal.map(mask_gaussian1D, sigma=sigma, masked_region=masked_region, **kwargs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d1f28966-fe76-4b15-8f2d-a2ccaef38b19",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"smoothed = smooth_signal(pss,\n",
" sigma=5,\n",
" masked_region=(-0.2, 0.1),\n",
" inplace=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "327ac8ae-3d36-4739-a9fc-e76afe30d728",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[########################################] | 100% Completed | 2.31 sms\n"
]
},
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"smoothed.plot()"
]
},
{
"cell_type": "markdown",
"id": "882cb689-3e1a-4771-a4b1-69e85d8e7f11",
"metadata": {},
"source": [
"\n",
"# 3. Fitting The Polar Spectrum\n",
"\n",
"Now that we have a polar spectrum defined we can start to fit the peaks"
]
},
{
"cell_type": "markdown",
"id": "9e15f5ba-2194-4ded-9fb6-3e86511b1ccb",
"metadata": {},
"source": [
"\n",
"## 3.a Fitting Functions\n",
"\n",
"These functions below help to initalize the fit and then to fit the data using the `map` function. We could equivilently use the hyperspy.model and `multifit` function but the `multifit` function is a little too slow for the amount of data that we want to process. We also have a very good idea of the location of the peaks in the data from the \"guess\" and we can use that to our advantage to help speed up the operation.\n",
"\n",
"The model is still a good place to play around with parameters and see if things work for the first position."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "34e44f9e-23a3-421c-9853-7a8721490928",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# Additional Helper functions for fitting the signal\n",
"from functools import partial\n",
"from scipy.optimize import curve_fit\n",
"# Take initial guess of peak position\n",
"def guess_peak(data,kernel):\n",
" x2 = np.linspace(-np.pi,np.pi,360)\n",
" corr = np.correlate(data,kernel,'same')\n",
" x = x2[np.argmax(corr)]\n",
" # if max peak is second peak then shift 180 degrees\n",
" if x > np.pi:\n",
" x = x-np.pi\n",
" elif x<0:\n",
" x =x+np.pi\n",
" return x \n",
"# Gaussian function\n",
"def gaussian(x,a,p,sig):\n",
" \"\"\"\n",
" Parameters:\n",
" -----------\n",
" x: array-like\n",
" The positions at which to ca\n",
" a:\n",
" Height of the Gaussian\n",
" p:\n",
" The Position of the center of the peak\n",
" sigma:\n",
" The sigma value for the gaussian\n",
" \"\"\"\n",
" return a*np.exp(-(x-p)**2/(2*sig**2))\n",
"\n",
"# Fitting function (single pair)\n",
"def composite(x, # phi\n",
" y_offset,# baseline\n",
" peak1_pos,a_peak1, a_peak2, sig,# peak intensities, position and sigma\n",
" beam_stop_pos): # beamstop\n",
" beamstop = np.ones(len(x))\n",
" beamstop[beam_stop_pos[0]:beam_stop_pos[1]]=0\n",
" return (y_offset + \n",
" gaussian(x, a_peak1, peak1_pos, sig) +\n",
" gaussian(x, a_peak2, peak1_pos-np.pi, sig)+ \n",
" gaussian(x, a_peak1, peak1_pos+np.pi, sig))*beamstop\n",
"\n",
"# Fit peak parameters\n",
"def peak_fit(data,\n",
" composite, \n",
" fixed_parameters,\n",
" bounds,\n",
" fitting_kwds = [\"y_offset\", \"peak1_pos\", \"a_peak1\", \"a_peak2\", \"sig\"],\n",
" method='chi2',\n",
" **kwargs):\n",
" \"\"\"\n",
" A general function to fit the composite function defined above.\n",
" \n",
" This function can be generalized to any composite function by creating a new function.\n",
" \n",
" The fixed parameters are fixed during the fitting while other kwargs passed only represent the initial parameters for fitting\n",
" and are iteratively changed to minimize the cost function.\n",
" \n",
" Parameters\n",
" ----------\n",
" data: np.array\n",
" The data to be fit. A 1-D array\n",
" composite: func\n",
" The funtion to be fit\n",
" fixed_parameters: dict\n",
" A dictionary mapping between the fixed parameters for the function that is being optimized. \n",
" bounds: \n",
" The bounds for the parameters which are being fit in a dictionary\n",
" i.e.: bounds = {\"y_offset\":(low_y, hi_y), \"peak1_pos\":(low_pos, hi_pos),}\n",
" fitting_kwds: list\n",
" The list of keywords that are passed to the function to be fit.\n",
" method:\n",
" The statistical analysis of the fit to return\n",
" kwargs:\n",
" The inital values for the composite function as well as any keyword arguments for `scipy.optimize.curve_fit`\n",
" \"\"\"\n",
" data = data+0.00000000001 # handle zeros\n",
" \n",
" comp = partial(composite, **fixed_parameters) # set fixed values\n",
" x2 = np.linspace(-np.pi,np.pi,360)\n",
" initial_guess = [kwargs.pop(k, 1) for k in fitting_kwds]\n",
" unpacked_bounds = (tuple([bounds.get(k, (-np.inf, np.inf))[0] for k in fitting_kwds]),\n",
" tuple([bounds.get(k, (-np.inf, np.inf))[1] for k in fitting_kwds]))\n",
" try:\n",
" popt,pcov = curve_fit(comp,\n",
" x2,\n",
" data,\n",
" p0=initial_guess,\n",
" bounds=unpacked_bounds,\n",
" sigma=1/np.power(data,1/4),\n",
" method='trf',\n",
" **kwargs)\n",
" except:\n",
" return [1,0,0,0,0,0]\n",
"\n",
" if method == 'std':\n",
" gof = np.sum(np.sqrt(np.diag(pcov)))\n",
" if method == 'chi2':\n",
" gof = np.nansum(((comp(x2, *popt)-data)**2/data)[data>0])/(360-len(unpacked_bounds[0]))\n",
" if method == 'r2':\n",
" ss_tot = np.sum((data-np.mean(data))**2)\n",
" ss_res = np.sum((data-comp(x2, *popt))**2)\n",
" gof = 1-ss_res/ss_tot\n",
" return np.array([gof,*popt])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c44babea-4235-4bca-a629-22979316eaba",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"x2 = np.linspace(-np.pi,np.pi,360)\n",
"kernel = gaussian(x2,35,0,0.36)+8\n",
"orientation_guess = smoothed.map(guess_peak,\n",
" kernel=kernel,\n",
" inplace=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "91189b56-3464-4261-8bba-5f7011091839",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
"